package com.fowo.api.model.nav.sell.order.detail;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 订单管理产品信息 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class NavSellOrderDetailImportPo {

  /** 所属订单管理 */
  @ExcelProperty("所属订单管理")
  private String parentNavSellOrderOrderId;

  @ExcelIgnore
  @Schema(title = "所属订单管理")
  private String parentNavSellOrder;

  /** 平台单号 */
  @ExcelProperty("平台单号")
  @Size(max = 50, message = "平台单号长度不能超过50")
  private String platformOrderId;

  /** 参考号 */
  @ExcelProperty("参考号")
  @Size(max = 50, message = "参考号长度不能超过50")
  private String referenceId;

  /** 商品来源 */
  @ExcelProperty("商品来源")
  private String itemFromName;

  /** 产品 */
  @ExcelProperty("产品")
  @Size(max = 500, message = "产品长度不能超过500")
  private String productIdName;

  @ExcelIgnore
  @Schema(title = "产品")
  private String productId;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 50, message = "品名长度不能超过50")
  private String productName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** 销售收益 */
  @ExcelProperty("销售收益")
  @DecimalString(message = "销售收益小数格式不正确", label = "销售收益")
  private String salesRevenueAmount;

  /** 商品类型 */
  @ExcelProperty("商品类型")
  @Size(max = 50, message = "商品类型长度不能超过50")
  private String typeName;

  @ExcelIgnore
  @Schema(title = "商品类型")
  private String type;

  /** 单价 */
  @ExcelProperty("单价")
  @DecimalString(message = "单价小数格式不正确", label = "单价")
  private String price;

  /** 数量 */
  @ExcelProperty("数量")
  @IntegerString(message = "数量数值格式不正确", label = "数量", min = 0)
  private String quantity;

  /** 可用量 */
  @ExcelProperty("可用量")
  @IntegerString(message = "可用量数值格式不正确", label = "可用量")
  private String availableQuantity;

  /** 变体属性 */
  @ExcelProperty("变体属性")
  @Size(max = 1000, message = "变体属性长度不能超过1000")
  private String attribute;

  /** 中文申报名 */
  @ExcelProperty("中文申报名")
  @Size(max = 50, message = "中文申报名长度不能超过50")
  private String chineseName;

  /** 英文申报名 */
  @ExcelProperty("英文申报名")
  @Size(max = 50, message = "英文申报名长度不能超过50")
  private String englishName;

  /** 备货店铺 */
  @ExcelProperty("备货店铺")
  @Size(max = 50, message = "备货店铺长度不能超过50")
  private String shopInfoShopName;

  @ExcelIgnore
  @Schema(title = "备货店铺")
  private String shopInfo;

  /** 捆绑类型 */
  @ExcelProperty("捆绑类型")
  @Size(max = 50, message = "捆绑类型长度不能超过50")
  private String bundleType;

  /** 捆绑产品wod_id */
  @ExcelProperty("捆绑产品wod_id")
  @Size(max = 50, message = "捆绑产品wod_id长度不能超过50")
  private String bundleWodId;

  /** 客付税费 */
  @ExcelProperty("客付税费")
  @DecimalString(message = "客付税费小数格式不正确", label = "客付税费")
  private String tax;

  /** 小费 */
  @ExcelProperty("小费")
  @DecimalString(message = "小费小数格式不正确", label = "小费")
  private String tip;

  /** 折扣 */
  @ExcelProperty("折扣")
  @DecimalString(message = "折扣小数格式不正确", label = "折扣")
  private String discount;

  /** 商品金额 */
  @ExcelProperty("商品金额")
  @DecimalString(message = "商品金额小数格式不正确", label = "商品金额")
  private String amount;

  /** 预估出库成本 */
  @ExcelProperty("预估出库成本")
  @DecimalString(message = "预估出库成本小数格式不正确", label = "预估出库成本")
  private String thinkDeliveryCost;

  /** 预估运费 */
  @ExcelProperty("预估运费")
  @DecimalString(message = "预估运费小数格式不正确", label = "预估运费")
  private String deliveryThinkFreight;

  /** 客付运费 */
  @ExcelProperty("客付运费")
  @DecimalString(message = "客付运费小数格式不正确", label = "客付运费")
  private String deliveryRealFreight;

  /** 交易费 */
  @ExcelProperty("交易费")
  @DecimalString(message = "交易费小数格式不正确", label = "交易费")
  private String transactionCost;

  /** 平台其他费 */
  @ExcelProperty("平台其他费")
  @DecimalString(message = "平台其他费小数格式不正确", label = "平台其他费")
  private String otherAmount;

  /** 采购成本 */
  @ExcelProperty("采购成本")
  @DecimalString(message = "采购成本小数格式不正确", label = "采购成本")
  private String cgPriceAmount;

  /** 库存明细成本 */
  @ExcelProperty("库存明细成本")
  @DecimalString(message = "库存明细成本小数格式不正确", label = "库存明细成本")
  private String stockAostAmount;

  /** 实际出库成本 */
  @ExcelProperty("实际出库成本")
  @DecimalString(message = "实际出库成本小数格式不正确", label = "实际出库成本")
  private String wmsOutboundCostAmount;

  /** COD费用 */
  @ExcelProperty("COD费用")
  @DecimalString(message = "COD费用小数格式不正确", label = "COD费用")
  private String codAmount;

  /** 实际运费 */
  @ExcelProperty("实际运费")
  @DecimalString(message = "实际运费小数格式不正确", label = "实际运费")
  private String wmsShippingPriceAmount;

  /** 礼品包装费 */
  @ExcelProperty("礼品包装费")
  @DecimalString(message = "礼品包装费小数格式不正确", label = "礼品包装费")
  private String giftWrapAmount;

  /** 销售税 */
  @ExcelProperty("销售税")
  @DecimalString(message = "销售税小数格式不正确", label = "销售税")
  private String saleTax;

  /** 积分成本 */
  @ExcelProperty("积分成本")
  @DecimalString(message = "积分成本小数格式不正确", label = "积分成本")
  private String pointsGrantedAmount;

  /** 其他费用 */
  @ExcelProperty("其他费用")
  @DecimalString(message = "其他费用小数格式不正确", label = "其他费用")
  private String otherFee;

  /** 平台订单商品状态 */
  @ExcelProperty("平台订单商品状态")
  private String platformStatus;

  /** 商品备注 */
  @ExcelProperty("商品备注")
  @Size(max = 50, message = "商品备注长度不能超过50")
  private String remark;

  /** 估算重量单位 */
  @ExcelProperty("估算重量单位")
  private String deliveryThinkWeightUnit;

  /** 估算重量 */
  @ExcelProperty("估算重量")
  @DecimalString(message = "估算重量小数格式不正确", label = "估算重量")
  private String deliveryThinkWeight;

  /** 商品标题 */
  @ExcelProperty("商品标题")
  @Size(max = 10000, message = "商品标题长度不能超过10000")
  private String goodsTitle;

  /** 商品ID */
  @ExcelProperty("商品ID")
  @Size(max = 50, message = "商品ID长度不能超过50")
  private String goodsCode;

  /** 卖家订单id */
  @ExcelProperty("卖家订单id")
  @Size(max = 50, message = "卖家订单id长度不能超过50")
  private String sellerOrderId;

  /** 行号（沃尔玛订单） */
  @ExcelProperty("行号（沃尔玛订单）")
  @Size(max = 50, message = "行号（沃尔玛订单）长度不能超过50")
  private String lineNumber;

  /** 数量单位 */
  @ExcelProperty("数量单位")
  @Size(max = 50, message = "数量单位长度不能超过50")
  private String unitOfMeasurement;

  /** 是否此时配对 */
  @ExcelProperty("是否此时配对")
  private String nowPari;

  /** 实重 */
  @ExcelProperty("实重")
  @DecimalString(message = "实重小数格式不正确", label = "实重")
  private String deliveryRealWeight;

  /** 实重单位 */
  @ExcelProperty("实重单位")
  private String deliveryRealWeightUnit;
}
